package com.heima.string.string;

public class StringDemo01 {
    public static void main(String[] args) {
        // 1. 使用直接赋值的方式获取一个字符串对象
        String s1 = "abc";
        System.out.println(s1); // abc

        // 2. 使用new的方式获取一个字符串对象
        // 空参构造: 可以获取一个空白的字符串对象
        String s2 = new String();
        System.out.println("@"+s2+"!"); // @!

        // 没啥用: 传递一个字符串, 根据传递的字符串内容再创建一个新的字符串对象
        String s3 = new String("abc");
        System.out.println(s3); // abc

        // 传递一个字符数组, 根据字符数组的内容再创建一个新的字符串对象
        char[] chs = {'a', 'b', 'c'};
        String s4 = new String(chs);
        System.out.println(s4); // abc
        // 需求: 修改字符串内容, abc->Qbc
        // abc -> {'a', 'b', 'c'} -> {'Q', 'b', 'c'} -> "Qbc"

        // 传递一个字节数组, 根据字节数组的内容再创建一个新的字符串对象
        // 应用场景: 再网络当中传输的数据其实都是字节信息
        // 一般要把字节信息进行转换, 转成字符串, 此时就要用到这个构造了
        byte[] bytes = {97, 98, 99};
        String s5 = new String(bytes);
        System.out.println(s5); // abc
    }
}
